Translating Refined Logic Programs to Mercury
نویسندگان
چکیده
A refinement calculus provides a method for transforming specifications to executable code, maintaining the correctness of the code with respect to its specification. In this paper we investigate the use of Mercury as the target implementation language for a refinement calculus for logic programs. We describe a prototype tool for translating programs in our specification language to Mercury code. More generally, we investigate the advantages that Mercury has over standard Prolog, with respect to developing correct programs from specifications.
منابع مشابه
AB CIRC 2 DLP — Translating Circumscription into Disjunctive Logic Programming
The stable model semantics of disjunctive logic programs (DLPs) is based on minimal models [3, 8] which makes atoms appearing in a disjunctive program false by default. This is often desirable from the knowledge representation point of view, but certain domains become awkward to formalize if all atoms are blindly subject to minimization. In contrast to this, parallel circumscription [7] provide...
متن کاملTranslating Concurrent Programs into Petri Nets for Synthesis of Asynchronous Circuits
We introduce a high-level synthesis methodology to automatically synthesize asynchronous circuits from a concurrent language called ALEPH. ALEPH is a high-level concurrent algorithmic specification that can model complex concurrent control flow, logical and arithmetic computation, and communication. This specification is translated into a Petri net which has actions. These actions are refined t...
متن کاملThe Well Supported Semantics for Multidimensional Dynamic Logic Programs
Multidimensional dynamic logic programs are a paradigm which allows to express (partially) hierarchically ordered evolving knowledge bases through (partially) ordered multi sets of logic programs. They solve contradictions among rules in different programs by allowing rules in more important programs to reject rules in less important ones. This class of programs extends the class of dynamic log...
متن کاملAdding Constraint Solving to Mercury
The logic programming language Mercury is designed to support programming in the large. Programmer declarations in conjunction with powerful compile-time analysis and optimization allow Mercury programs to be very efficient. The original design of Mercury did not support constraint logic programming (CLP). This paper describes the extensions we added to Mercury to support CLP. Unlike similarly ...
متن کاملCompiling logic programs to Cusing GNU C as a portable
This paper discusses the merits of using C, and in particular GNU C, as an intermediate target language for the compilation of logic programs, and describes the approach we have taken in the implementation of Mercury. We start with a simple approach using ANSI C, and investigate a variety of improvements on this basic approach.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002